package com.yidu.action;


import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import com.yidu.common.JsonMsg;
import com.yidu.common.Pages;
import com.yidu.common.Tools;
import com.yidu.domain.ListenBackstageUser;
import com.yidu.domain.ListenMusical;
import com.yidu.domain.ListenStock;
import com.yidu.service.ListenMusicalService;
import com.yidu.service.ListenStockService;

import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author YZJ
 * @since 2018-11-27
 */
@Controller
@RequestMapping("/listenMusical")
public class ListenMusicalController {
	@Resource
	ListenMusicalService mapper;
	
	@Resource
	ListenStockService stmapper;
	/**
	 * 显示全部
	 * @param mu
	 * @return
	 */
	@RequestMapping("selectAll")
	@ResponseBody
	public Map<String,Object> selectAll(@RequestParam(value = "key[title]", required =false)String title,
			@RequestParam(value = "key[titletype]", required =false)String titletype,
			@RequestParam(value = "key[titlestartPrice]", required =false)String titlestartPrice,
			@RequestParam(value = "key[titleEndPrice]", required =false)String titleEndPrice,
			@RequestParam(value = "page" , required =false)Integer page,
			@RequestParam(value = "limit" , required =false)Integer limit,String sort){
		//new 一个数组
		Map<String, Object> map=new HashMap<String, Object>();
		//new 模具类
		ListenMusical mu=new ListenMusical();
		//判断页面搜索乐器的值不为空
		if(title!=null && !"".equals(title)) {
			//将页面上的搜索乐器的值赋给模具类
			mu.setMuName(title);
		}
		//判断页面上类型搜索的值不为空
		if(titletype!=null) {
			//将页面的搜索类型ID的值赋给模具类
			mu.setMtId(titletype);
		}
		//判断页面上搜索开始价格不为空
		if(titlestartPrice!=null && !"".equals(titlestartPrice)) {
			//将页面的搜索开始价格赋给模具类
			mu.setStartPrice(titlestartPrice);
		}
		if(sort!=null && !"".equals(sort)) {
			//将页面的搜索开始价格赋给模具类
			mu.setSort(sort);
		}
		//判断页面上搜索结束价格不为空
		if(titleEndPrice!=null && !"".equals(titleEndPrice)) {
			//将页面的搜索结束价格赋给模具类
			mu.setEndPrice(titleEndPrice);
		}
		//new 分页工具类
		Pages pages=new Pages();
		//判断开始页数与每页最大页数不为空
		if(page!=null && limit!=null) {
			//将当前页数赋值模具类
			pages.setCurPage(page);
			//将每页最大页数赋值再给页面
			pages.setMaxResult(limit);
			//添加开始行数
			map.put("firstRows", pages.getFirstRows());
			//添加每页最大行数
			map.put("maxResult", pages.getMaxResult());
		}
		//添加开始价格
		map.put("startPrice", mu.getStartPrice());
		//添加结束价格
		map.put("endPrice", mu.getEndPrice());
		//添加物料清单乐器
		map.put("sort", mu.getSort());
		//添加乐器
		map.put("muName", mu.getMuName());
		//添加类型ID
		map.put("mtId", mu.getMtId());
		//查询所有的方法
		List<ListenMusical> selectAll = mapper.selectAll(map);
		//查询总行数方法
		int rows= mapper.selectC(map);
		//new 一个数组
		Map<String,Object> layuiMap =new HashMap<String, Object>();
		layuiMap.put("code", 0);
		layuiMap.put("msg", "");
		layuiMap.put("count",rows);
		//将list放入map中
		layuiMap.put("data", selectAll);
		return layuiMap;
	}
	
	/**
	 * 根据ID查询
	 * @param muId
	 * @return
	 */
	@RequestMapping("selectId")
	@ResponseBody
	public ListenMusical selectID(String id) {
		//返回执行查询方法
		return mapper.selectID(id);
	}
	
	/**
	 * 修改或者增加
	 * @param mu
	 * @throws IOException 
	 * @throws IllegalStateException 
	 */
	@RequestMapping("updateorinser")
	@ResponseBody
	public void updateorinser(ListenMusical mu,
			@RequestParam(value = "file", required = false) MultipartFile file,
			HttpServletRequest request,ListenStock stock,HttpSession session) throws IllegalStateException, IOException {
				//得到上传文件地址和名称
				String img =Tools.getRealPathYzj(request, file);
				//获取用户表的session
				ListenBackstageUser users = (ListenBackstageUser) session.getAttribute("user");
				//判断图片文件不能为空
				if(img!=null && !"".equals(img)) {
					//给磨具类图片赋值
					mu.setMuPic(img);
				}
				//new 一个Date获取当前时间
				Date data =new Date();
				//将当前时间赋值给操作时间
				mu.setOpenTime(data);
				//判断页面上的ID不为空
				if(mu.getMuId()!=null &&!"".equals(mu.getMuId())) {
//					//给操作用户赋值
					mu.setOper(users.getBuName());
					//执行修改
					mapper.updateByPrimaryKeySelective(mu);
				}else {
					//给操作用户赋值
					mu.setOper(users.getBuName());
					//执行增加
					mapper.insertSelective(mu);
					//给操作用户赋值
					stock.setOper(users.getBuName());
					//给ID赋值
					stock.setMuId(mu.getMuId());
					//给公司ID赋值总公司
					stock.setCompanyId("1");
					//给库存数量赋值
					stock.setStockNumber(0);
					//给乐器批发价赋值
					stock.setWholesale(mu.getMuPrice());
					//是否有效赋值
					stock.setIsva(1);
					//库存增加的方法
					stmapper.insertSelective(stock);
				}
	}
	/**
	 * 删除方法
	 * @param id
	 * @return
	 */
	@RequestMapping("delectid")
	@ResponseBody
	public JsonMsg  delectid(String id) {
		//new Jsom的工具类
		JsonMsg msg=new JsonMsg();
		//传给后台参数
		msg.setDatas(1);
		msg.setMsg("删除成功");
		//调用删除方法
		mapper.updatei(id);
		return msg;
	}
	/**
	 * 库存中显示乐器
	 * @param mu
	 * @return
	 */
	@RequestMapping("MuName")
	@ResponseBody
	public List<ListenMusical> MuName(ListenMusical mu){
		//查询乐器名称
		return mapper.MuName(mu);
	}
	 
	/**
	 * 采购增加页面显示乐器
	 * @author 刘武
	 * @param mu 乐器对象
	 * @return Map对象
	 */
	@RequestMapping("findAllMusical")
	@ResponseBody
	public Map<String,Object> findAllMusical(ListenMusical mu){
		//新建一个分页的工具类
		Pages pages=new Pages();
		//new 一个map
		Map<String, Object> map=new HashMap<String, Object>();
		//判断分页
		if(mu.getPage()!=null && mu.getLimit()!=null) {
			pages.setCurPage(mu.getPage());
			pages.setMaxResult(mu.getLimit());
			map.put("firstRows", pages.getFirstRows());
			map.put("maxResult", pages.getMaxResult());
		}
		//判断公司名
		if(!Tools.isEmpty(mu.getMuName())) {
			map.put("muName", mu.getMuName());
		}
		//判断开始价格
		if(!Tools.isEmpty(mu.getStartPrice())) {
			map.put("startPrice", mu.getStartPrice());
		}
		//判断结束价格
		if(!Tools.isEmpty(mu.getEndPrice())) {
			map.put("endPrice", mu.getEndPrice());
		}
		//判断类型id
		if(!Tools.isEmpty(mu.getMtId())) {
			map.put("mtId", mu.getMtId());
		}
		//采购增加页面显示乐器
		List<ListenMusical> selectAll = mapper.findAllMusical(map);
		//采购增加页面显示乐器行数
		int rows= mapper.findRowsByPruchase(map);
		//new 一个map
		Map<String,Object> layuiMap =new HashMap<String, Object>();
		layuiMap.put("code", 0);
		layuiMap.put("msg", "");
		layuiMap.put("count",rows);
		//将list放入map中
		layuiMap.put("data", selectAll);
		return layuiMap;
	}  
}

